// 验证是否有登录，如果有登录，获取到登录信息，如果没有登录，跳转到登录页
// (async function () {
//     const resp = await API.profile();
//     console.log(resp);
//     const user = resp.data;
//     console.log(user);
//     if(!user) {
//         alert('未登录或登录已过期，请重新登录')
//         location.href = './login.html';
//         return;
//     }

//     // 登录后要做的操作
//     const doms = {
//         aside:{
//             nickname:$('#nickname'),
//             loginId:$('#loginId'),
//         },
//         close:$('.close'),
//         div:$('.chat-container'),
//         txtMsg:$('#txtMsg'),
//         form:$('.msg-container'),
//     }
    
//     // 关闭按钮的注销事件
//     doms.close.onclick = function() {
//         API.loginOut();
//         location.href = './login.html';
//     }

//     // 设置用户信息
//     function setUserInfo() {
//         doms.aside.loginId.innerText = user.loginId;
//         doms.aside.nickname.innerText = user.nickname;
//     }
//     setUserInfo();

//     // 加载历史记录    
//     async function loadHistory(){
//         const resp = await API.getHistory();
//         for(const item of resp.data) {
//             addChat(item);
//         }
//         scrollBotton();
//     };
//     loadHistory();

//     // 根据消息对象，添加到页面中
//     /**
//      * 
//         content:"你是哪里人"
//         createdAt:1655988823976
//         from:"hahaha"
//         to:null
//      */
//     function addChat(chatInfo) {
//         const div = $$$('div');
//         div.className = 'chat-item';
//         if(chatInfo.from) {
//             div.classList.add('me');
//         }

//         const img = $$$('img');
//         img.className = 'chat-avatar';
//         img.src = chatInfo.from ? './asset/avatar.png' : './asset/robot-avatar.jpg';

//         const content = $$$('div');
//         content.className = 'chat-content';
//         content.innerText = chatInfo.content;

//         const data = $$$('div');
//         data.className = 'chat-date';
//         data.innerText = formData(chatInfo.createdAt);

//         div.appendChild(img);
//         div.appendChild(content);
//         div.appendChild(data);
//         doms.div.appendChild(div);

//     }

//     // 时间戳转换
//     function formData(tamestemp) {
//         const data = new Date(tamestemp);  // 根据时间戳得到一个日期对象
//         const year = data.getFullYear();
//         const month = (data.getMonth() + 1).toString().padStart(2,'0');
//         const day = data.getDay().toString().padStart(2,'0');
//         const hours = data.getHours().toString().padStart(2,'0');
//         const minutes = data.getMinutes().toString().padStart(2,'0');
//         const seconed = data.getSeconds().toString().padStart(2,'0');

//         return `${year}-${month}-${day} ${hours}:${minutes}:${seconed}`;
//     }
    
//     // 让聊天区域的滚动条滚动到最后
//     function scrollBotton() {
//         // console.log(doms.div.scrollHeight);
//         doms.div.scrollTop = doms.div.scrollHeight;
//     }

//     // 发送消息
//     function sendChat() {
//         const content = doms.txtMsg.value.trim();
//         if(!content) {
//             return;
//         }

//         addChat({
//             content,
//             createdAt:new Date(),
//             from:user.loginId,
//             to:null,
//         })
//         doms.txtMsg.value = '';
//         scrollBotton();

//         const resp = API.sendChat(content);
//         console.log(resp);
        
//         addChat({
//             from:null,
//             to:user.loginId,
//             ...resp.data,
//         })
//         scrollBotton();
//     }

//     // 发送消息事件
//     doms.form.onsubmit = function(e) {
//         e.preventDefault();  //阻止表单默认事件
//         sendChat();
//     }
// })();


// 获取当前登录的用户
(async function () {
    const resp = await API.profile();
    const user = resp.data;
    console.log(resp,user);
    
    const doms = {
        aside:{
            nickname:$('#nickname'),
            loginId:$('#loginId'),
        },
        close:$('.close'),
        div:$('.chat-container'),
        txtMsg:$('#txtMsg'),
        form:$('.msg-container'),
    }
    
    function userInfo() {
        doms.aside.nickname.innerText = user.nickname;
        doms.aside.loginId.innerText = user.loginId;
    }
    userInfo();

    if(!user) {
        alert('未登录或登录已过期，请重新登录')
        location.href = './login.html';
        return;
    }
    // 登录成功后的操作

    // 设置在文本框中添加信息和时间
    /**
     * @param {*} chatInfo 
     * content:"你是哪里人"
       createdAt:1655988823976
       from:"hahaha"
       to:null
     */
    function addChat(chatInfo) {
        const div = $$$('div');
        div.className = 'chat-item';
        if(chatInfo.from) {
            div.classList.add('me')
        }
        
        const img = $$$('img');
        img.className = 'chat-avatar';
        img.src = chatInfo.from ? './asset/avatar.png' : './asset/robot-avatar.jpg'
        // console.log(img);
        
        const content = $$$('div');
        content.className = 'chat-content';
        content.innerText = chatInfo.content;
        // console.log(content);
        
        const date = $$$('div');
        date.className = 'chat-date';
        date.innerText = formData(chatInfo.createdAt);
        // console.log(date);
        
        div.appendChild(img);
        div.appendChild(content);
        div.appendChild(date);
        doms.div.appendChild(div);
        // console.log(div,img,content,date);
  
    }


    // 更改时间格式函数
    function formData(timestemp) {
        const data = new  Date(timestemp);
        const year = data.getFullYear();
        const month = data.getMonth().toString().padStart(2,'0');
        const day = data.getDate().toString().padStart(2,'0');
        const hours = data.getHours().toString().padStart(2,'0');
        const minutes = data.getMinutes().toString().padStart(2,'0');
        const seconed = data.getSeconds().toString().padStart(2,'0');

        return `${year}-${month}-${day} ${hours}:${minutes}:${seconed}`;
    }


     // 获取历史聊天记录
     async function loadHistory() {
        const resp = await API.getHistory();
        console.log(resp);
        for(const item of resp.data) {
            addChat(item);
        }
        setScrollPosition();
    }
    loadHistory();

    // 将滚动条滚动到最底部
    function setScrollPosition() {
        doms.div.scrollTop = doms.div.scrollHeight;
    }


    // 关闭事件
    doms.close.onclick = function () {
        API.loginOut();
        location.href = './login.html';
    }

    async function sendChat() {
        const content = doms.txtMsg.value.trim();
        addChat({
            content,
            createdAt:Date.now(),
            from:user.loginId,
            to:null,
        });
        doms.txtMsg.value = '';
        setScrollPosition();
        const resp = await API.sendChat(content);
        addChat({
            form:null,
            to:user.loginId,
            ...resp.data,
        })
        setScrollPosition();
    }

    // 发送消息提交事件
    doms.form.onsubmit = function(e) {
        e.preventDefault();  //阻止表单默认事件
        sendChat();
    }
})();